package com.tengfei.experiment2_3.adapter;

import android.content.Context;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.tengfei.experiment2_3.R;

import java.util.List;
import java.util.Random;

public class MyRecyclerViewAdapter
        extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyViewHolder> {

    private List<String> data;
    private Context context;

    public MyRecyclerViewAdapter(Context context,List<String> data) {
        this.context = context;
        this.data = data;
    }


    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.recyclerview_item, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.getTvChar().setText(data.get(position));
        Random random = new Random();
        int rand_height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                48 + random.nextInt(20) * 5,
                context.getResources().getDisplayMetrics());
          holder.getTvChar().getLayoutParams().height=rand_height;
          holder.getTvChar().setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Toast.makeText(context,holder.getTvChar().getText().toString(),
                          Toast.LENGTH_SHORT).show();
              }
          });
    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private TextView tvChar;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            tvChar = itemView.findViewById(R.id.tv_char);
        }

        public TextView getTvChar() {
            return tvChar;
        }
    }
}
